package com.chinairi.mall.dao;

import com.chinairi.mall.model.SysUser;
import com.chinairi.mall.model.SysUserLogin;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.chinairi.mall.service.modelobject.SysUserLoginMO;
import org.apache.ibatis.annotations.Param;

/**
 * <p>
 * 用户账号信息表 Mapper 接口
 * </p>
 *
 * @author 董志涵
 * @since 2020-08-17
 */
public interface SysUserLoginMapper extends BaseMapper<SysUserLogin> {
    SysUserLogin getSysUserByUserMail(String userMail);

    SysUserLogin getSysUserByUserName(String userName);

    SysUserLogin getSysUserByUuid(String uuid);

    void changePasswordByUuid(@Param("password") String password, @Param("uuid") String uuid, @Param("time") String time);

    void updateByUuid(@Param("uuid") String uuid, @Param("loginTimes") Integer loginTimes);

    /**
     * 根据传回的邮箱加用户uuid确认此邮箱是否被注册。
     *
     * @param id
     * @param email
     * @return
     */
    int checkEmail(@Param("id") String id, @Param("email") String email);

    /**
     * 根据现实时间更新用户账号表，将login num置0
     *
     * @param nowDate 当前时间
     */
    void updateCheck(@Param("nowDate") String nowDate);

    /**
     * 根据用户id获取登录所需信息
     *
     * @param id
     * @return
     */
    SysUserLoginMO getLoginInfo(@Param("id") String id);

    /**
     * 用户登录成功后更新用户登录失败次数为0
     * @param id 用户主键
     */
    void updateErrorCount(@Param("id") String id);
}
